<html>
    <head>
        <title>自主选择为哪些类生成  API 控制器</title>
    </head>
    <body>
        <script>
            /*
                        三、 自主选择为哪些类生成API控制器

                                   ABP不仅仅可以为应用服务按照约定创建api 控制器。
                                   
                                   1、IRemoteService接口

                                                如果一个类实现了IRemoteService接口，那么它就会被ABP按照约定创建对应的api控制器。

                                                因为应用程序服务的基类固有的实现了 IRemoteService接口，因此，应用服务被视为"自然控制器"



                                   2、[RemoteService]特性

                                                [RemoteService]特性可用于将类"标记为远程服务" 或 禁用固有实现了IRemoteService接口的特定类。

                                                eg: 
                                                    [RemoteService(IsEnabled = false)] //or simply [RemoteService(false)]
                                                    public class PersonAppService : ApplicationService
                                                    {

                                                    }


                                   3、TypePredicate选项

                                                您可以通过提供TypePredicate选项进一步过滤类以成为API控制器：

                                                    services.Configure<AbpAspNetCoreMvcOptions>(options =>
                                                    {
                                                        options.ConventionalControllers
                                                            .Create(typeof(BookStoreApplicationModule).Assembly, opts =>
                                                                {
                                                                    opts.TypePredicate = type => { return true; }; // 此处可对类型进行过滤，
                                                                });
                                                    });

                                                如果您不想将此类型公开为API控制器，您可以检查它并返回false，而不是为每种类型返回true。
                    */

        </script>
    </body>
</html>